package viper

import (
	"fmt"
	"log"
	"oc_go/internal/g"

	"github.com/fsnotify/fsnotify"
	v_conf "github.com/spf13/viper"
)

func InitViper() {
	filePath := "config.yml"
	v := v_conf.New()
	v.SetConfigName(filePath)
	v.SetConfigType("yml")
	v.AddConfigPath("./config")
	err := v.ReadInConfig()
	if err != nil {
		log.Fatal("读取本地配置文件失败:", err.Error())
	}
	v.WatchConfig()
	v.OnConfigChange(func(in fsnotify.Event) {
		fmt.Println("本地配置文件发生了变化", in.Name)
		if err = v.Unmarshal(&g.OC_LOCAL_CONF); err != nil {
			log.Fatal("本地文件变化，但读取失败", err.Error())
		}
	})
	if err = v.Unmarshal(&g.OC_LOCAL_CONF); err != nil {
		log.Fatal("本地文件获取成功,但读取失败", err.Error())
	}
}
